001 /** 002 * Created by IntelliJ IDEA. 003 * User: Wei Wang 004 * Date: Nov 28, 2002 005 * Time: 2:27:40 AM 006 */ 007 008 package EVolve.visualization.XYViz.ValRefViz.HotSpotViz; 009 010 import EVolve.data.Element; 011 import EVolve.util.painters.ThreadHotspotPainter; 012 import EVolve.visualization.Dimension; 013 import EVolve.visualization.ValueDimension; 014 import EVolve.visualization.ReferenceDimension; 015 import javax.swing.*; 016 017 public class ThreadHotspotViz extends HotSpotVisualization{ 018 019 public ThreadHotspotViz() { 020 super(); 021 painters[0] = new ThreadHotspotPainter(); 022 painters[1] = painters[0]; 023 } 024 025 public Dimension[] createDimension() { 026 Dimension [] returnDimension = new Dimension[3]; 027 028 xAxis = new ValueDimension(); 029 yAxis = new ReferenceDimension(); 030 zAxis = new ReferenceDimension(); 031 032 returnDimension[0] = xAxis; 033 returnDimension[1] = yAxis; 034 returnDimension[2] = zAxis; 035 036 return returnDimension; 037 } 038 039 protected JPanel createConfigurationPanel() { 040 JPanel returnVal = super.createConfigurationPanel(); 041 042 comboPainter.removeItemAt(1); 043 044 return returnVal; 045 } 046 047 public void preVisualize() { 048 super.preVisualize(); 049 image = null; 050 } 051 052 public void receiveElement(Element element) { 053 if (element.isOptional()) return; 054 055 long threadId = zAxis.getField(element); 056 057 switchThread(threadId); 058 059 long x = xAxis.getField(element); 060 long y = yAxis.getField(element); 061 long z = 0; 062 phaseDetector.collectData(x/interval,y); 063 paint(x,y,z); 064 } 065 066 public void visualize() { 067 image = ((ThreadHotspotPainter)painter).getImage(); 068 sort(); 069 } 070 071 protected void installPainter() { 072 ((ThreadHotspotPainter)painters[0]).setImageMap(imageMap); 073 super.installPainter(); 074 } 075 }